home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / flashpc.exe / FPCLIB.H < prev    next >
C/C++ Source or Header  |  1993-03-25  |  19KB  |  518 lines

  1. /*--------------------------------------------------------------------
  2. -
  3. --------------------------------------------------------------------*/
  4.  
  5. #ifndef FPCLIB
  6. #define FPCLIB
  7.  
  8. /*--------------------------------------------------------------------
  9. -
  10. --------------------------------------------------------------------*/
  11.  
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15.  
  16. /*--------------------------------------------------------------------
  17. -
  18. --------------------------------------------------------------------*/
  19.  
  20.    #define FAR                 far
  21.    #define PTR                 far *
  22.    #define FPENTRY             pascal far
  23.  
  24.    typedef          char       CHAR;        /* signed     8 bits  */
  25.    typedef unsigned char       BYTE;        /* unsigned   8 bits  */
  26.  
  27.    typedef          int        INT;         /* signed    16 bits  */
  28.    typedef unsigned int        UINT;        /* unsigned  16 bits  */
  29.  
  30.    typedef signed   short int  INT2;        /* signed    16 bits  */
  31.    typedef unsigned short int  UINT2;       /* unsigned  16 bits  */
  32.    typedef unsigned int        WORD;        /* unsigned  16 bits  */
  33.    typedef long                INT4;        /* signed    32 bits  */
  34.    typedef unsigned long       UINT4;       /* unsigned  32 bits  */
  35.    typedef float               REAL4;       /* signed    32 bits  */
  36.    typedef double              REAL8;       /* unsigned  64 bits  */
  37.    typedef void                VOID;
  38.  
  39.  
  40.    typedef CHAR PTR            PCHAR;        /* signed     8 bits  */
  41.    typedef BYTE PTR            PBYTE;        /* unsigned   8 bits  */
  42.  
  43.    typedef INT  PTR            PINT;         /* signed    16 bits  */
  44.    typedef UINT PTR            PUINT;        /* unsigned  16 bits  */
  45.  
  46.    typedef INT2  PTR           PINT2;        /* signed    16 bits  */
  47.    typedef UINT2 PTR           PUINT2;       /* unsigned  16 bits  */
  48.    typedef WORD  PTR           PWORD;        /* unsigned  16 bits  */
  49.    typedef INT4  PTR           PINT4;        /* signed    32 bits  */
  50.    typedef UINT4 PTR           PUINT4;       /* unsigned  32 bits  */
  51.    typedef REAL4 PTR           PREAL4;       /* signed    32 bits  */
  52.    typedef REAL8 PTR           PREAL8;       /* unsigned  64 bits  */
  53.    typedef VOID  PTR           PVOID;
  54.  
  55. /*---------------------------------------------------------------------
  56. - Data structure for FindFirst, FindNext
  57. ---------------------------------------------------------------------*/
  58.  
  59. typedef struct TFindRec
  60.    {
  61.    BYTE    Attr;
  62.    UINT2   Time;
  63.    UINT2   Date;
  64.    UINT4   Size;
  65.    BYTE    Name[13];
  66.    } TFindRec;
  67.  
  68. /*---------------------------------------------------------------------
  69. - Global Variables
  70. ---------------------------------------------------------------------*/
  71.  
  72. extern BYTE pascal CErrDevice[10];
  73. extern BYTE pascal CheckSnow;
  74. extern BYTE pascal TextAttr;
  75.  
  76. extern INT2 pascal VioMode;
  77. extern INT2 pascal VioPage;
  78. extern INT2 pascal VioCols;
  79. extern INT2 pascal VioCursor;
  80. extern INT2 pascal VioBaseSeg;
  81. extern INT2 pascal VioMouse;
  82.  
  83. extern INT2 pascal WindMin;
  84. extern INT2 pascal WindMax;
  85.  
  86. extern INT2 pascal InsMode;
  87.  
  88. extern INT2 pascal DosErrNo;
  89. extern INT2 pascal CErrCode;
  90. extern INT2 pascal CErrType;
  91. extern INT2 pascal CErrDrive;
  92.  
  93. extern INT2 pascal NEvents;
  94. extern INT2 pascal MTextMode;
  95.  
  96. extern INT2 pascal MouButtons;
  97.  
  98. /*---------------------------------------------------------------------
  99. - DOS1 routines
  100. ---------------------------------------------------------------------*/
  101.  
  102. VOID FPENTRY Beep( UINT2 Freq, UINT2 Dur );
  103. VOID FPENTRY GetTime( PINT2 Hour, PINT2 Minute,
  104.                       PINT2 Second, PINT2 Sec100 );
  105.  
  106. /*---------------------------------------------------------------------
  107. - For FPGetKey.c module
  108. ---------------------------------------------------------------------*/
  109.  
  110. #ifndef IN_GETKEY
  111.    extern INT2 FPENTRY GetKey( VOID );
  112. #endif
  113.  
  114. /*---------------------------------------------------------------------
  115. - Bios and DOS keyboard routines
  116. ---------------------------------------------------------------------*/
  117.  
  118. VOID  FPENTRY BiosKbdClr( VOID );
  119. INT2  FPENTRY BiosKbdGetElmt( VOID );
  120. INT2  FPENTRY BiosKbdHit( VOID );
  121. VOID  FPENTRY BiosKbdRead( PCHAR Ch );
  122. INT2  FPENTRY BiosKbdStat( VOID );
  123. VOID  FPENTRY DosKbdClr( VOID );
  124. INT2  FPENTRY DosKbdGetElmt( VOID );
  125. INT2  FPENTRY DosKbdHit( VOID );
  126. VOID  FPENTRY DosKbdRead( PCHAR Ch );
  127.  
  128.  
  129. UINT2 FPENTRY bkReadCh( VOID );
  130. UINT2 FPENTRY bkGetKbdStatus( VOID );
  131. UINT2 FPENTRY bkGetKbdFlags( VOID );
  132. VOID  FPENTRY bkSetRepeatRate( INT2 Delay, INT2 Repeat );
  133. UINT2 FPENTRY bkPushKeyCodes( INT2 scancode, INT2 ascii );
  134.  
  135. UINT2 FPENTRY bkeReadCh( VOID );
  136. UINT2 FPENTRY bkeGetKbdStatus( VOID );
  137. UINT2 FPENTRY bkeGetKbdFlags( VOID );
  138.  
  139. /*---------------------------------------------------------------------
  140. - Bios printer routines
  141. ---------------------------------------------------------------------*/
  142.  
  143. VOID FPENTRY BiosPrtChar( CHAR Ch, INT2 PrtNo );
  144. INT2 FPENTRY BiosPrtInit( INT2 PrtNo );
  145. INT2 FPENTRY BiosPrtStat( INT2 PrtNo );
  146. VOID FPENTRY DosPrtChar( CHAR Ch );
  147.  
  148. /*---------------------------------------------------------------------
  149. - Video routines
  150. ---------------------------------------------------------------------*/
  151.  
  152. VOID FPENTRY BorderColor( INT Color );
  153. VOID FPENTRY ClrWin( INT x1, INT y1, INT x2, INT y2, INT Attr );
  154. VOID FPENTRY ColorMsg( INT x, INT y, INT Attr, PCHAR Message );
  155. VOID FPENTRY DspMsg( INT x, INT y, PCHAR Message );
  156.  
  157. VOID FPENTRY EditSt( INT      Row,
  158.                      INT      StCol,
  159.                      INT      SpCol,
  160.                      INT      Len,
  161.                      INT      CharCase,
  162.                      INT      FillCh,
  163.                      INT      AutoSkip,
  164.                      UINT     ErrTone,
  165.                      UINT     ErrDur,
  166.                      PCHAR    VCSet,
  167.                      PCHAR    TCSet,
  168.                      PINT     ChOfs,
  169.                      PINT     TE,
  170.                      PCHAR    St    );
  171.  
  172. VOID FPENTRY FillColAttr( INT x, INT y, INT NRows, INT Attr );
  173. VOID FPENTRY FillColCell( INT x, INT y, INT NRows, INT Cell );
  174. VOID FPENTRY FillColChar( INT x, INT y, INT NRows, CHAR Ch );
  175.  
  176. VOID FPENTRY FillFrameAttr( INT x1, INT y1,
  177.                             INT x2, INT y2, INT Attr );
  178.  
  179. VOID FPENTRY FillFrameCell( INT x1, INT y1,
  180.                             INT x2, INT y2, INT2 Cell );
  181.  
  182. VOID FPENTRY FillFrameChar( INT x1, INT y1,
  183.                             INT x2, INT y2, CHAR Ch );
  184.  
  185. VOID FPENTRY FillRowAttr( INT x, INT y, INT NBytes, INT Attr );
  186. VOID FPENTRY FillRowCell( INT x, INT y, INT NWords, INT2 Cell );
  187. VOID FPENTRY FillRowChar( INT x, INT y, INT NBytes, CHAR Ch );
  188.  
  189. VOID FPENTRY FrameWin( CHAR UL,  CHAR UR,
  190.                        CHAR LL,  CHAR LR,
  191.                        CHAR Hor, CHAR Ver, INT Attr );
  192.  
  193. INT2 FPENTRY GetCursorSize( VOID );
  194.  
  195. VOID FPENTRY GetFrameAttr( INT x1, INT y1,
  196.                            INT x2, INT y2, PCHAR Buffer );
  197.  
  198. VOID FPENTRY GetFrameCell( INT x1, INT y1,
  199.                            INT x2, INT y2, PCHAR Buffer );
  200.  
  201. VOID FPENTRY GetFrameChar( INT x1, INT y1,
  202.                            INT x2, INT y2, PCHAR Buffer );
  203.  
  204. VOID FPENTRY GetScrn( INT x, INT y, INT NWords, PVOID Buffer );
  205. INT  FPENTRY GetVideoCols( VOID );
  206.  
  207. VOID FPENTRY GetVideoInfo( PINT BaseSeg, PINT Cols,
  208.                            PINT Pg,      PINT Mode );
  209.  
  210. INT  FPENTRY GetVideoMode( VOID );
  211. INT  FPENTRY GetVideoPage( VOID );
  212. VOID FPENTRY GotoxyAbs( INT x, INT y );
  213. VOID FPENTRY HideCursor( VOID );
  214. VOID FPENTRY InitVideo( INT Mode );
  215.  
  216. VOID FPENTRY PutFrameAttr( INT x1, INT y1,
  217.                            INT x2, INT y2, PCHAR Buffer );
  218.  
  219. VOID FPENTRY PutFrameCell( INT x1, INT y1,
  220.                            INT x2, INT y2, PCHAR Buffer );
  221.  
  222. VOID FPENTRY PutFrameChar( INT x1, INT y1,
  223.                            INT x2, INT y2, PCHAR Buffer );
  224.  
  225. VOID FPENTRY PutScrn( INT x, INT y, INT NWords, PVOID Buffer );
  226. INT  FPENTRY RvsAttr( INT Attr );
  227.  
  228. VOID FPENTRY ScrollDown( INT x1,   INT y1,
  229.                          INT x2,   INT y2,
  230.